#ifndef COUNTUI_H
#define COUNTUI_H

#include <QWidget>
#include <QLineEdit>
#include <QPushButton>
#include <QLabel>
#include <QtCharts>
#include "directoryscanner.h"

// 主界面类，负责用户交互和结果显示
class CountUI : public QWidget
{
    Q_OBJECT  // Qt宏，启用信号槽机制
public:
    explicit CountUI(QWidget *parent = nullptr);  // 构造函数
    ~CountUI();  // 析构函数

private slots:
    // 槽函数
    void onConfirmClicked();  // 确认按钮点击处理
    void onCancelClicked();   // 取消按钮点击处理
    void onScanFinished();    // 扫描完成处理
    void onFilesProcessed(int count);  // 文件处理进度更新

private:
    // 私有方法
    void showChartAndResults(const DirectoryStats &stats);  // 显示统计结果和图表
    QChartView* createPieChart(const QMap<QString, int> &fileTypes);  // 创建饼图
    void cleanupScanner();  // 清理扫描线程

    // UI控件
    QLabel *pathLabel;       // 路径标签
    QLineEdit *inputLineEdit; // 路径输入框
    QPushButton *confirmButton; // 确认按钮
    QPushButton *cancelButton;  // 取消按钮
    QLabel *statusLabel;     // 状态显示标签
    DirectoryScanner *m_scanner = nullptr;  // 目录扫描器指针
};

#endif // COUNTUI_H